#include <iostream>
#include <vector>
using namespace std;
int main() {
    int row = 0, col = 0, k = 0;
    while (cin >> row >> col >> k) {
        vector<vector<int>> matrix(row, vector<int>(col));
        while (k--) {
            int x = 0, y = 0;
            cin >> x >> y;
            matrix[x - 1][y - 1] = 1;
        }
        vector<vector<double>> dp(row + 1, vector<double>(col + 1));
        dp[0][1] = 2;
        dp[1][0] = 0;
        for (int i = 1; i < row + 1; ++i) {
            for (int j = 1; j < col + 1; ++j) {
                if (matrix[i - 1][j - 1] == 1) {
                    dp[i][j] = 0;
                } else {
                    dp[i][j] = dp[i - 1][j] * (j - 1 == col - 1 ? 1 : 0.5) +
                               dp[i][j - 1] * (i - 1 == row - 1 ? 1 : 0.5);
                }
            }
        }
        printf("%.2f\n", dp[row][col]);
    }
    return 0;
}
